Item recommendation system, item recommendation method and program

ABSTRACT

An item recommendation system includes: a feedback receiving unit receiving feedbacks with respect to items by users; a feedback history storage unit storing information of feedbacks received at present or in the past by the feedback receiving unit in units of combinations of users and items; a relevance calculation unit calculating relevance between items base on first information indicating the degree in which the same user gives feedbacks to respective items and second information indicating the degree in which many users give feedbacks by using feedback information stored by the feedback history storage unit when receiving the feedback by the feedback receiving unit; and a recommendation unit immediately recommending items having higher relevance with respect to the item to the user who has given the feedback to the item by the feedback receiving unit based on the relevance calculated by the relevance calculation unit.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/155,155, filed Jan. 14, 2014, which is a continuation of U.S.application Ser. No. 13/154,305, filed Jun. 6, 2011 (now U.S. Pat. No.8,666,834), which is based upon and claims the benefit of priority fromJapanese Patent Application No. 2010-135655, filed Jun. 15, 2010, theentire contents of which are incorporated herein by reference.

FIELD

The present disclosure relates to an item recommendation system, an itemrecommendation method and a program.

BACKGROUND

In recent years, businesses using networks are rapidly expanded. Forexample, a system of purchasing items at on-line stores on the networkis widely used. In most of such on-line stores, a system of recommendingitems to users is provided. For example, when the user accesses todetailed information of a certain item, information of items relating tothe item are presented as related items or recommended items to theuser. Such system is realized by, for example, using a cooperativefiltering method described in JP-A-2003-167901 (Patent Document 1). Thecooperative filtering method is a recommendation method usinginformation (for example, purchase history and so on) of users havingsimilar taste.

SUMMARY

When using the above cooperative filtering method, it is possible torecommend items to a new user which has no purchase history by usinginformation of users having similar taste to the user. On the otherhand, in a case of a contact-based filtering method which recommendsitems by using purchase history of the user, it is difficult torecommend items to the new user who has no purchase history.Accordingly, the cooperative filtering method is effective with respectto the user who has little purchase history of items.

The content-based filtering method is a method of determining items tobe recommended by analyzing purchase history of respective users,therefore, the method has an advantage that tastes of respective userscan be reflected easily. In a state where the number of users is smalland users having similar taste are difficult to be found, thecontent-based filtering method is more efficient than the cooperativefiltering method.

At the on-line store, the purchase history of items, access history ofdetailed information and so on are analyzed by using the above filteringmethods and so on, thereby preparing information for recommending itemsto the user. However, sufficiently long time is necessary for analyzingprocessing using the above filtering methods and so on. On the otherhand, recommendation results of items have large effect on sales in theon-line store, therefore, a system of presenting items corresponding tothe user's taste immediately is requested.

However, in present on-line stores, a system in which purchase historyand access history of detailed information are stored for a given periodof time (for example, one day) and analysis processing by using theabove filtering methods and so on is executed at given intervals(hereinafter referred to as batch processing) is used. Accordingly, whenthe user purchases an item, the purchase history is not reflected on therecommendation result at the time of purchasing. For example, when auser A purchases an item X, the purchase history of the user A is notreflected on the recommendation result with respect to a user Bpurchasing the item X until the batch processing is completed.

The example in which purchase history obtained when the user purchasesitems at on-line stores is used for recommendation is shown as theabove, however, evaluation results obtained when the user evaluates acertain item, access history obtained when user accesses to detailedinformation of a certain item are also used for recommendation of items.In the following explanation, actions (for example, purchase,evaluation, information access and so on) of the user performed withrespect to items or services (hereinafter referred to as items) arereferred to as feedbacks.

In view of the above, it is desirable to provide a novel and improveditem recommendation system, an item recommendation method and a programcapable of realizing recommendation reflecting a feedback of the userimmediately.

According to an embodiment of the present disclosure, there is providedan item recommendation system including a feedback receiving unitreceiving feedbacks with respect to items by users, a feedback historystorage unit storing information of feedbacks received at present or inthe past by the feedback receiving unit in units of combinations ofusers and items, a relevance calculation unit calculating relevancebetween items base on first information indicating the degree in whichthe same user gives feedbacks to respective items and second informationindicating the degree in which many users give feedbacks by usingfeedback information stored by the feedback history storage unit whenreceiving the feedback by the feedback receiving unit, and arecommendation unit immediately recommending items having higherrelevance with respect to the item to the user who has given thefeedback to the item by the feedback receiving unit based on therelevance calculated by the relevance calculation unit.

The recommendation system may further include a variation detection unitdetecting a combination of items i, j, the relevance of which varies tothe highest degree between a time t₁ and a time t₂ by comparing arelevance J (t₁) between items calculated at the time t₁ by therelevance calculation unit and a relevance J (t₂) between itemscalculated by the relevance calculation unit at the time t₂ which is thetime next to the time t₁ and a relevance prediction unit predicting arelevance J (t₃) between items at a time t₃ next to the time t₂ from adifference between relevances J (t₂)−J (t₁) concerning items i, jdetected by the variation detection unit. In this case, therecommendation unit recommends items based on the relevance calculatedby the relevance calculation unit at a given timing and recommends itemsbased on the relevance predicted by the relevance prediction unit at atiming different from the given timing.

The recommendation system can further include a taste informationgeneration unit generating taste information indicating user's tastebased on feedback information stored by the feedback history storageunit. In this case, the taste information generation unit generatestaste information based on feedback information stored by the feedbackhistory storage unit just before receiving a feedback by the feedbackreceiving unit, and the recommendation unit recommends items in whichthe taste is higher for the user who has given the feedback to the itemby the feedback receiving unit from items having higher relevance basedon taste information generated just before receiving the feedback by thefeedback receiving unit.

When a priority coefficient is set to each item, the recommendation unitcan be configured to recommend items having higher relevance withrespect to the item to the user who has given the feedback to the itemby the feedback receiving unit based on relevance calculated bymultiplying the priority coefficient.

The feedback history storage unit can be configured to store thefeedback history in a storage device connected through a network.

When the feedback information stored by the feedback history storageunit is P(i, u) at the time of receiving the feedback by a user u withrespect to an item i by the feedback receiving unit, and when P (i, u)=1is set in the case of receiving the feedback and P (i, u)=0 is set inthe case of not receiving the feedback, a relevance J (i, j) between theitem i and an item j (j≠i) is expressed by the later-describedexpressions (1), (2).

Also according to another embodiment of the present disclosure, there isprovided an item recommendation method including receiving feedbackswith respect to items by users, storing information of feedbacksreceived at present or in the past by the feedback receiving unit inunits of combinations of users and items, calculating relevance betweenitems base on first information indicating the degree in which the sameuser gives feedbacks to respective items and second informationindicating the degree in which many users give feedbacks by usingfeedback information stored by the step of storing feedback history whenreceiving the feedback in the step of receiving the feedback andrecommending items having higher relevance with respect to the itemimmediately to the user who has given the feedback to the item in thestep of receiving the feedback based on the relevance calculated in thestep of calculating relevance.

Also according to still another embodiment of the present disclosure,there is provided a program for allowing a computer to execute afeedback receiving function receiving feedbacks with respect to items byusers, a feedback history storage function storing information offeedbacks received at present or in the past by the feedback receivingfunction in units of combinations of users and items, a relevancecalculation function calculating relevance between items base on firstinformation indicating the degree in which the same user gives feedbacksto respective items and second information indicating the degree inwhich many users give feedbacks by using feedback information stored bythe feedback history storage function when receiving the feedback by thefeedback receiving function and a recommendation function immediatelyrecommending items having higher relevance with respect to the item tothe user who has given the feedback to the item by the feedbackreceiving function based on the relevance calculated by the relevancecalculation function.

Also according to yet another embodiment of the present disclosure,there is provided a recording medium in which the above program isrecorded, which can be read by the computer.

As described above, according to the embodiments of the presentdisclosure, it is possible to realize recommendation immediatelyreflecting the feedback of the user.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an explanatory view for explaining a configuration of arecommendation system according to an embodiment of the presentdisclosure;

FIG. 2 is an explanatory diagram for explaining a configuration of aserver device and a configuration of a storage device included in therecommendation system according to the embodiment;

FIG. 3 is an explanatory chart for explaining a configuration of ahistory table used in the recommendation system according to theembodiment;

FIG. 4 is an explanatory chart for explaining a configuration of anintermediate value table used in the recommendation system according tothe embodiment;

FIG. 5 is an explanatory chart for explaining a configuration of arelevance table used in the recommendation system according to theembodiment;

FIG. 6 is an explanatory chart for explaining a configuration of tasteinformation used in the recommendation system according to theembodiment;

FIG. 7 is an explanatory chart for explaining a configuration of ahistory matrix (P-matrix) used in the recommendation system according tothe embodiment;

FIG. 8 is an explanatory chart for explaining a configuration of anintermediate value matrix (D-matrix) used in the recommendation systemaccording to the embodiment;

FIG. 9 is an explanatory chart for explaining a configuration of arelevance matrix (J-matrix) used in the recommendation system accordingto the embodiment;

FIG. 10 is an explanatory chart for explaining a recommendation methodof items according to the embodiment;

FIG. 11 is an explanatory chart for specifically explaining therecommendation method of items according to the embodiment;

FIG. 12 is an explanatory chart for specifically explaining therecommendation method of items according to the embodiment;

FIG. 13 is an explanatory chart for explaining an update method of thehistory matrix (P-matrix) according to the embodiment;

FIG. 14 is an explanatory chart for explaining an update method of theintermediate value matrix (D-matrix) according to the embodiment;

FIG. 15 is an explanatory chart for explaining an update method of therelevance matrix (J-matrix) according to the embodiment;

FIG. 16 is an explanatory chart for explaining a recommend method usingtaste information according to the embodiment;

FIG. 17 is an explanatory chart for explaining a configuration of atable of the number of purchases used in the recommendation systemaccording to the embodiment;

FIG. 18 is an explanatory chart for explaining a configuration of atable of the number of co-occurrences used in the recommendation systemaccording to the embodiment;

FIG. 19 is an explanatory chart for explaining an update method of therelevance table (J-matrix) according to a first modification example ofthe embodiment;

FIG. 20 is an explanatory chart for explaining the update method of therelevance table (J-matrix) according to the first modification exampleof the embodiment;

FIG. 21 is an explanatory chart for explaining the update method of therelevance table (J-matrix) according to the first modification exampleof the embodiment;

FIG. 22 is an explanatory chart for explaining an update method of therelevance table (J-matrix) using bias parameters according to a secondmodification example of the embodiment; and

FIG. 23 is an explanatory diagram for explaining a hardwareconfiguration capable of realizing functions of the server device anduser terminals according to the embodiment.

DETAILED DESCRIPTION

Hereinafter, a preferred embodiment of the present disclosure will beexplained in detail with reference to the attached drawings. In thespecification and the drawings, the same signs are given to componentshaving substantially the same functional configurations to omit repeatedexplanation.

[Flow of Explanation]

The flow of explanation concerning the embodiment of the presentdisclosure described as follows will be briefly described.

First, a configuration of a recommendation system 10 according to theembodiment will be explained with reference to FIG. 1. Next, aconfiguration of a server device 11 and a configuration of a storagedevice 12 included in the recommendation system 10 of the embodimentwill be explained with reference to FIG. 2. In the explanation,configurations of a history table, an intermediate value table, arelevance table and taste information used in the recommendation system10 according to the embodiment will be also explained with reference toFIG. 3 to FIG. 6.

Next, configurations of a history matrix (P-matrix), an intermediatevalue matrix (D-matrix) and a relevance matrix (J-matrix) used in therecommendation system according to the embodiment will be explained withreference to FIG. 7 to FIG. 9. Additionally, a recommendation method ofitems according to the embodiment using the history matrix (P-matrix),the intermediate value matrix (D-matrix) and the relevance matrix(J-matrix) will be explained with reference to FIG. 10.

Next, the recommendation method of items according to the embodimentwill be explained more specifically with reference to FIG. 11 and FIG.12. In the explanation, update methods of the history matrix (P-matrix),the intermediate value matrix (D-matrix) and the relevance matrix(J-matrix) and a recommendation method using the taste informationaccording to the embodiment will be specifically explained withreference to FIG. 13 to FIG. 16. Furthermore, configurations of a tableof the number of purchases and a table of the number of co-occurrencesused in the recommendation system according to the embodiment will beexplained with reference to FIG. 17, FIG. 18 and FIG. 19.

Next, an update method of the relevance matrix (J-matrix) according to afirst modification example of the embodiment will be explained withreference to FIG. 19 to FIG. 21. Next, an update method of the relevancematrix (J-matrix) using bias parameters according to a secondmodification example of the embodiment will be explained with referenceto FIG. 22. Next, a hardware configuration capable of realizingfunctions of the server device 11 and user terminals 13 according to theembodiment will be explained with reference to FIG. 23. Lastly,technical ideas of the embodiment are summarized, then, operation andeffect obtained from the technical ideas are briefly explained.

EXPLANATION ITEMS 1: Embodiment

1-1: Configuration of a recommendation system 10

1-2: Functional configurations of a server device 11 and a storagedevice 12

1-3: Recommendation method using P-matrix, D-matrix and J-matrix

1-3-1: Configurations of P-matrix, D-matrix and J-matrix

1-3-2: General flow of processing

1-3-3: Specific flow of processing

1-3-4: Recommendation method using taste information

1-3-5: About efficiency method

1-4: Modification examples

1-4-1: Approximate update method of J-matrix (first modificationexample)

1-4-2: Update method of J-matrix based on bias parameters (secondmodification example)

1-5: Hardware configuration

2: Brief 1: Embodiment

The embodiment of the present disclosure will be explained. Theembodiment relates to the system executing recommendation reflecting theuser's taste and a trend of the whole users immediately in considerationof effects with respect to the trend of the whole users in addition tothe user's taste when receiving a feedback from the user.

1-1: Configuration of a Recommendation System 10

First, the configuration of the recommendation system 10 according tothe embodiment will be explained with reference to FIG. 1. FIG. 1 is anexplanatory view for explaining the configuration of the recommendationsystem 10. The system configuration of the recommendation system 10shown in FIG. 1 is one example.

As shown in FIG. 1, the recommendation system 10 includes the serverdevice 11, the storage device 12 and plural user terminals 13. Theserver device 11 is connected to the plural user terminals 13 through anetwork 14. A personal computer and a cellular phone are shown asexamples of the user terminals 13 in FIG. 1, however, the forms of theuser terminals 13 are not limited to the above and an informationterminal, a game machine, a video device, information home appliancesand so on can be applied.

The server device 11 is a means for receiving a feedback of the user andproviding services for the user in accordance with the receivedfeedback. For example, the server device 11 has a function of an on-linestore, providing a sales service of items for the user. The serverdevice 11 provides item information to the user terminals 13 through thenetwork 14 and provides services such as an on-line payment service inaccordance with feedbacks received from the user terminals 13. Theserver device 11 further stores information of feedbacks (for example,purchase history and an evaluation value) in the storage device 12 whenreceiving feedbacks from the user terminals 13. The storage device 12can be provided inside a casing of the server device 11.

Information of the feedbacks stored in the storage device 12 is used foranalyzing the user's taste or for analyzing relevance between items. Forexample, the server device 11 analyzes the taste of each user based onthe number of purchasing items by each user and evaluation values addedto respective items by each user and generates taste information inwhich high scores are assigned to items having the large number ofpurchases and items having high evaluation values (for example, refer toFIG. 6). The server device 11 also analyzes relevance between itemsbased on existence of the feedback added with respect to respectiveitems by each user and calculates relevance between items (for example,refer to FIG. 5). The server device 11 further recommends items relatingto the item to which the feedback has been given to the user who hasgiven the feedback based on taste information and relevance betweenitems.

The above is the explanation of the configuration of the recommendationsystem 10. The recommendation of items in the recommendation system 10is realized by functions of the server device 11 and the storage device12. Accordingly, the explanation will be made with a focus on thefunctional configurations of the server device 11 and the storage device12 as follows.

1-2: Functional Configurations of the Server Device 11 and the StorageDevice 12

The functional configuration of the server device 11 and the storagedevice 12 according to the embodiment will be explained with referenceto FIG. 2. FIG. 2 is an explanatory view for explaining functionalconfigurations of the server device 11 and the storage device 12according to the embodiment.

As shown in FIG. 2, the server device 11 includes a feedback receivingunit 111, a feedback information update unit 112, an intermediate-valuetable generation unit 113, a relevance calculation unit 114, an itemrecommendation unit 115 and a taste analyzing unit 116. The storagedevice 12 chiefly includes a history table storage unit 121, anintermediate-value table storage unit 122 and a relevance table storageunit 123.

First, a feedback given from the user by using the user terminal 13 isinputted into the feedback receiving unit 111. For example, when theuser executes purchase operation of an item, information indicatingpurchase of the item is inputted into the feedback receiving unit 111 asthe feedback. The feedback information inputted in the feedbackreceiving unit 111 is inputted into the feedback information update unit112. When the feedback information is inputted, the feedback informationupdate unit 112 stores the inputted feedback information in the historytable storage unit 121.

The history table as shown in FIG. 3 is stored in the history tablestorage unit 121. The history table stores information indicatingcombinations of items which have received feedbacks and the users whohas given the feedbacks is stored so that which user has given thefeedback to which item can be seen.

In the history table shown in FIG. 3 as an example, “User ID” indicatesidentification information of users who have given feedbacks. “Item ID”indicates identification information of items to which feedbacks aregiven. Accordingly, it is found that a user having “User ID”=1 has giventhe feedback with respect to items having “Item ID”=1, 2 from theexample of FIG. 3. Similarly, a user having “User ID”=2 has given thefeedback with respect to the item having “Item ID”=1 and a user having“ID item”=3 has given the feedback with respect to the item having “IDitem”=2.

When the feedback information is stored in the history table storageunit 121 by the feedback information update unit 112, theintermediate-value table generation unit 113 generates the intermediatevalue table (refer to FIG. 4) based on the history table stored in thehistory table storage unit 121. The intermediate value table indicatesinformation concerning relevance between items. The intermediate valuetable generated by the intermediate-value table generation unit 113 isstored in the intermediated-value table storage unit 122.

When the intermediate value table is stored in the intermediate-valuetable storage unit 122, the relevance calculation unit 114 calculatesthe relevance between items by using the intermediate value table storedin the intermediate-value table storage unit 122. Then, the relevancebetween items calculated by the relevance calculation unit 114 is storedin the relevance table storage unit 123 as the relevance table (refer toFIG. 5).

When the relevance between items is stored in the relevance storage unit123, the item recommendation unit 115 selects an item group having highrelevance with respect to the item to which the feedback has been givenbased on the relevance table stored in the relevance storage unit 123.Next, the item recommendation unit 115 selects a given number of itemscorresponding to the user's taste from the selected item group andrecommends the items to the user who has given the feedback. At thistime, the item recommendation unit 115 selects the given number of itemscorresponding to the user's taste from the selected item group based ontaste information generated by the taste analyzing unit 116.

For example, the taste analyzing unit 116 assigns higher scores to itemsto which many feedbacks were given in the past by the users who havegiven the feedbacks, storing scores assigned to respective items astaste information (referred to FIG. 6). In the example of FIG. 6, theuser having “User ID”=1 has a higher taste for the item having “ItemID”=1. It is also preferable that the taste analyzing unit 116 has aconfiguration of assigning higher scores to items to which the user whohas given the feedback gave good feedbacks in the past.

The above is the explanation of the functional configurations of theserver device 11 and the storage device 12. However, in the aboveexplanation, configurations of the history table, the intermediate valuetable and the relevance table as well as a method of calculating storedvalues of the intermediate value table from stored values of the historytable and a method of calculating stored values of the relevance tablefrom stored values of the intermediate value table are omitted.Accordingly, a specific method of calculating relevance between itemsfrom feedback information and a recommendation method of items based onthe relevance will be explained in more detail.

1-3: Recommendation Method Using P-Matrix, D-Matrix and J-Matrix

The server device 11 according to the embodiment uses the history table,the intermediate value table and the relevance table for selecting itemsto be recommended to the user who has given the feedback. However, thehistory matrix (hereinafter referred to as P-matrix), the intermediatevalue matrix (hereinafter referred to as D-matrix) and the relevancematrix (hereinafter referred to as J-matrix) as shown in FIG. 7 to FIG.9 are actually used instead of using the history table, the intermediatevalue table and the relevance table shown in FIG. 3 to FIG. 5.

(1-3-1: Configurations of P-Matrix, D-Matrix and J-Matrix)

Here, configurations of P-matrix, D-matrix and J-matrix will beexplained.

(P-Matrix)

The P-matrix is a matrix indicating the relation between users who havegiven feedbacks and items receiving the feedbacks as shown in FIG. 7.When a user u gives a feedback to an item i, 1 is inputted to an elementP (i, u) corresponding to the user u and the item i. For example, 1 isinputted to a column (element P (1, 2) of the P-matrix) corresponding toa user 2 (User 2) and an item 1 (Item 1), therefore, it is found thatthe user 2 has given the feedback with respect to the item 1.

The P-matrix is stored in the history table storage unit 121. When thefeedback receiving unit 111 receives the feedback, the feedbackinformation update unit 112 updates the P-matrix stored in the historytable storage unit 121.

(D-Matrix)

The D-matrix is a matrix indicating the relation between items as shownin FIG. 8. The D-matrix is used for calculating the later-describedJ-matrix, which is calculated based on the P-matrix. An element D (i, j)of the D-matrix concerning an item i and an item j is defined by thefollowing expression (1). The D-matrix is generated by theintermediate-value table generation unit 113 and stored in theintermediate-value table storage unit 122. As the D-matrix issymmetrical with respect to i, j, it is sufficient that only elements ofi>j are stored in the intermediate-value table storage unit 122 as shownin FIG. 8.

$\begin{matrix}{{D\left( {i,j} \right)} = {{\sum\limits_{v}\; {P\left( {i,v} \right)}} + {\sum\limits_{v}\; {P\left( {j,v} \right)}} - {\sum\limits_{v}\; {{P\left( {i,v} \right)} \cdot {P\left( {j,v} \right)}}}}} & (1)\end{matrix}$

(J-Matrix)

The J-matrix is a matrix indicating relevance between items as shown inFIG. 9. The J-matrix is calculated based on the P-matrix and theD-matrix. An element J (i, j) of the J-matrix concerning an item i andan item j is defined by the following expression (2). The J-matrix iscalculated by the relevance calculation unit 114 and stored in therelevance table storage unit 123. As the J-matrix is symmetrical withrespect to i, j, it is sufficient that only elements of i>j are storedin the relevance table storage unit 123 as shown in FIG. 9.

$\begin{matrix}{{J\left( {i,j} \right)} = \frac{\sum\limits_{v}\; {{P\left( {i,v} \right)} \cdot {P\left( {j,v} \right)}}}{D\left( {i,j} \right)}} & (2)\end{matrix}$

The above is the explanation of the configurations of P-matrix, D-matrixand J-matrix. Hereinafter, the update methods of the above P-matrix,D-matrix and J-matrix and the recommendation method of items using theabove methods will be explained.

(1-3-2: General Flow of Processing)

First, the general flow of processing relating to the recommendationmethod of items using P-matrix, D-matrix and J matrix will be explainedwith reference to FIG. 10. FIG. 10 is an explanatory chart forexplaining the general flow of processing relating to the recommendationmethod of items using P-matrix, D-matrix and J matrix.

As shown in FIG. 10, first, the server device 11 determines whetherthere is a feedback or not (S101). When receiving the feedback by thefeedback receiving unit 111, the server device 11 allows the process toproceed to Step S102. On the other hand, when the feedback is notreceived by the feedback receiving unit 111, the server device 11returns the process to Step S101. When the process proceeds to StepS102, the server device 11 updates the P-matrix stored in the historytable storage unit 121 based on feedback information received by thefeedback receiving unit 111 using the function of the feedbackinformation update unit 112 (S102).

Subsequently, the server device 11 which has updated the P-matrix storedin the history table storage unit 121 updates the D-matrix stored in theintermediate-value table storage unit 122 based on the updated P-matrixusing the function of the intermediate-value table generation unit 113(S103). Next, the server device 11 which has updated the D-matrix storedin the intermediate-table storage unit 122 updates the J-matrix storedin the relevance table storage unit 123 based on the updated D-matrixand the P-matrix using the function of the relevance calculation unit114 (Step S104). Next, the server device 11 recommends items relating tothe item receiving the feedback based on the updated J-matrix and tasteinformation using the function of the item recommendation unit 115(S105).

The above is the explanation of the general flow of the processingrelating to the recommendation method of items using P-matrix, D-matrixand J-matrix.

(1-3-3: Specific Flow of Processing)

Next, specific update processing of P-matrix, D-matrix and J-matrix willbe explained with reference to FIG. 11 and FIG. 12. FIG. 11 and FIG. 12are explanatory charts for explaining specific update processing ofP-matrix, D-matrix and J-matrix. Here, the specific processing flowexecuted when the user u purchases the item i will be explained as anexample. The feedbacks other than the purchase are the same as thiscase.

First, as shown FIG. 11, the server device 11 determines whether theelement P (i, u) of the P-matrix is 0 or not by referring to theP-matrix stored in the history table storage unit 121 (S111). When theelement P (i, u) of the P-matrix is 0, the server device 11 allows theprocess to proceed to Step S112. On the other hand, when the element P(i, u) of the P-matrix is not 0, the server device 11 allows the processto proceed to Step S113. The case where the element P (i, u) of theP-matrix is 0 indicates a case where the user u has not given thefeedback to the item i before.

When the process proceeds to Step S112, the server device 11 sets 1 inthe element P (i, u) of the P-matrix and updates the P-matrix stored inthe history table storage unit 121 using the function of the feed backinformation update unit 112 (S112). For example, when the user 5purchased the item 2, the element P (2, 5) of the P-matrix is updated to1 as shown in FIG. 13. The server device 11 who has updated the P-matrixallows the process to Step S113.

When the process proceeds to Step S113, the server device 11 starts aprocessing loop concerning a parameter k (k=1 to i−1) (S113). First, theserver device 11 determines whether an element P (k, u) of the P-matrixis 1 or not by referring to the updated P-matrix stored in the historytable storage unit 121 (S114). When the matrix P (k, u) of the P-matrixis 1, the server device 11 allows the process to Step S115. On the otherhand, when the matrix P (k, u) of the P-matrix is not 1, the serverdevice 11 allows the process to proceed to Step S116.

When the process proceeds to Step S115, the server device 11 updates theJ-matrix stored in the relevance storage unit 123 by using an element D(i, k) of the D-matrix by referring to the D-matrix stored in theintermediate-value table storage unit 122 (S115). Specifically, theserver device 11 adds 1/D (i, k) to the element J (i, k) of the J-matrixstored in the relevance storage unit 123 to calculate a new element J(i, k) of the J-matrix using the function of the relevance calculationunit 114. Then, the new element J (i, k) of the J-matrix is stored inthe relevance storage unit 123 and the process proceeds to Step S118.

When the process proceeds to Step S116 in Step S114, the server device11 adds 1 to the element D (i, k) of the D-matrix stored in theintermediate-value table storage unit 122 to calculate a new element D(i, k) of the D-matrix by the function of the intermediate-value tablegeneration unit 113 (S116). Then, the new element D (i, k) of theD-matrix is stored in the intermediate-value table storage unit 122 andthe process proceeds to Step S117.

Next, the server device 11 calculates a new element J (i, k) of theJ-matrix by using the updated D-matrix stored in the intermediate-valuetable storage unit 122 and the J-matrix stored in the relevance tablestorage unit 123 by the function of the relevance calculation unit 114(S117). At this time, the server device 11 calculates the new element J(i, k) of the J-matrix based on the following expression (3) by usingthe function of the relevance calculation unit 114. Then the new elementJ (i, k) of the J-matrix is stored in the relevance table storage unit123 and the process proceeds to Step S118.

$\begin{matrix}{{J\left( {i,k} \right)} = {{J\left( {i,k} \right)}\frac{{D\left( {i,k} \right)} - 1}{D\left( {i,k} \right)}}} & (3)\end{matrix}$

When the process proceeds to Step S118, the server device 11 determineswhether the process loop with respect to the parameter k is completed ornot (S118). Specifically, whether the parameter k is i−1 or not isdetermined in Step S118. When k<i−1, 1 is added to the parameter k andthe process returns to Step S113. On the other hand, when k=i−1, theprocess proceeds to Step S119 (FIG. 12).

Here, supplementary explanation of the update processing of the D-matrix(refer to S114, S116) and the update processing of the J-matrix (referto S114, S115 and S117) will be made with specific examples whilereferring to FIG. 14 and FIG. 15. In this case, a case where the user 5has purchased the item 2 will be considered as an example (u=5, i=2).The update method of the P-matrix when the user 5 has purchased the item2 is the same as in the above explanation made with reference to FIG.13.

In the case where the user 5 has purchased the item 2, the element P (2,5) of the P-matrix is updated to 1 as shown in FIG. 13 (corresponding toStep S112).

When P (2, 5) is updated, the processing loop of the parameter k (k=1 to4) in Step S113 to S118 is started. First, whether P (k, 5) is 1 or notis determined in Step S114. In the example of FIG. 14, P (1, 5)≠1, P (2,5)=1, P (3, 5)=1, P (4, 5)≠1, in the updated P-matrix, therefore, theprocess proceeds to Step S115 when k=1, 4, and the process proceeds toStep S116 when k=2, 3.

The update processing of the D-matrix is not executed when the processproceeds to Step S115. That is, when k=2, 3, the update processing ofthe D-matrix is not executed. On the other hand, when the processproceeds to Step S116, the update processing of the D-matrix isexecuted. Specifically, when k=1, 4, the update processing of theD-matrix in Step S116 is executed. Therefore, in the example of FIG. 14,only D (1,2) and D (2, 4) are update targets in the D-matrix and 1 isadded to be updated to new D (1,2) and D (2, 4) respectively.

Next, the update processing of the J-matrix is executed. When theprocess proceeds to Step S115 (when k=2, 3), 1/D (2, 3) is added to J(2, 3) to be updated to a new J (2, 3) as shown in FIG. 15. On the otherhand, when the process proceeds to Step S117 (when k=1, 4), elements Jare updated to new J (1, 2) and J (2, 4) based on the above expression(3) as shown in FIG. 15.

As explained above, the D-matrix and the J-matrix are updated in theprocessing loop (S113 to S118) concerning the parameter k (k=1 to i−1).When the processing loop (S113 to S118) is completed, the processproceeds to Step S119 (FIG. 12).

When the process proceeds to Step S119 (FIG. 12), the server device 11starts the processing loop (k=i+1 to n) concerning the parameter k(S119). First, the server device 11 determines whether the element P (k,u) of the P-matrix is 1 or not by referring to the updated P-matrixstored in the history table storage unit 121 (S120). When the element P(k, u) of the P-matrix is 1, the server device 11 allows the process toproceed to Step S121. On the other hand, when element P (k, u) of theP-matrix is not 1, the server device 11 allows the process to proceed toStep S122.

When the process proceeds to Step S121, the server device 11 updates theJ-matrix stored in the relevance table storage unit 123 by using theelement D (k, i) of the D-matrix by referring to the D-matrix stored inthe intermediate-value table storage unit 122 (S121). Specifically, theserver device 11 adds 1/D (k, i) to the element J (k, i) of the J-matrixstored in the relevance table storage unit 123 to calculate a newelement J (k, i) of the J-matrix using the function of the relevancecalculation unit 114. Then, the new element J (k, i) of the J-matrix isstored in the relevance table storage unit 123 and the process proceedsto Step S124.

When the process proceeds to Step S122 in Step S120, the server device11 adds 1 to the element D (k, i) of the D-matrix stored in theintermediate-value table storage unit 122 to calculates a new element D(k, i) of the D-matrix using the function of the intermediate-valuetable generation unit 113 (S122). Then, the new element D (k, i) of theD-matrix is stored in the intermediate-value table storage unit 122 andthe process proceeds to Step S123.

Next, the server device 11 calculates a new element J (k, i) of theJ-matrix by using the updated D-matrix stored in the intermediate-valuetable storage unit 122 and the J-matrix stored in the relevance tablestorage unit 123 using the function of the relevance calculation unit114 (S123). At this time, the server device 11 calculates a new elementJ (k, i) of the J-matrix based on the following expression (4) using thefunction of the relevance calculation unit 114. Then, the new element J(k, i) of the J-matrix is stored in the relevance table storage unit 123and the process proceeds to Step S124.

$\begin{matrix}{{J\left( {k,i} \right)} = {{J\left( {k,i} \right)}\frac{{D\left( {k,i} \right)} - 1}{D\left( {k,i} \right)}}} & (4)\end{matrix}$

When the process proceeds to Step S124, the server device 11 determineswhether the processing loop concerning the parameter k is completed ornot (S124). Specifically, whether the parameter k is n or not isdetermined in Step S124. When k<n, 1 is added to the parameter k and theprocess returns to Step S119. On the other hand, when k=n, the series ofprocessing relating to the update of P-matrix, D-matrix and J-matrix iscompleted. The specific update methods of the D-matrix and the J-matrixin the processing loop of Step S119 to S124 are substantially the sameas the specific update methods of the D-matrix and the J-matrix in theprocessing loop of Step S113 to S118 explained with reference to FIG. 14and FIG. 15.

The above is the explanation of the update methods of P-matrix, D-matrixand J-matrix.

(1-3-4: Recommendation Method Using Taste Information)

Next, the processing flow relating to a recommendation method of itemsusing taste information and the J-matrix will be explained withreference to FIG. 16. FIG. 16 is an explanatory chart for explaining theprocessing flow relating to the recommendation method of items usingtaste information and the J-matrix.

As shown in FIG. 16, first, the server device 11 learns the feedback andacquires taste information based on the learned result using thefunction of the taste analyzing unit 116 (S131). The server device 11can be configured to use taste information inputted by a user's handusing the function of the taste analyzing unit 116.

For example, feedbacks such as purchase history, evaluation values andaccess history of detailed information are inputted to the tasteanalyzing unit 116 through the feedback receiving unit 111. When suchfeedbacks are inputted, the taste analyzing unit 116 assigns higherscores to items having higher purchase frequency, items having higherevaluation values and items having higher access frequency of detailedinformation to generate taste information as shown in FIG. 6. As shownin FIG. 6, the taste information is expressed by scores indicatingtastes of respective users with respect to respective items. Therefore,it is possible to detect items preferred by the user by comparing scoresof respective items with respect to the user who gave feedbacks andextracting items having higher scores in the taste information.

Here, supplementary explanation of the generation method of tasteinformation will be made. As described above, the taste information isgenerated based on feedbacks given by the user. However, there arevarious types of feedbacks such as purchase, evaluation and access todetailed information. For example, it is conceivable that the user'staste is higher in the purchased items than in items detailedinformation of which has been just accessed. Naturally, it isconceivable that the user's taste is higher in items to which higherevaluation values were added than in items to which lower evaluationvalues were added. Therefore, it is necessary to consider weightcorresponding to types of feedbacks when generating taste information.

For example, when a score indicating a taste degree of the user u withrespect to the item i is expressed as UP (u, i), a weight with respectto the k-th feedback is expressed as a_(k), and a score added when thek-th feedback with respect to the item i is given (the score notdepending on types of feedbacks) is expressed as x_(i, k), the score UP(u, i) is expressed by the following expression (5). The score x_(i, k)can be set to a given value not depending on k as well as set to a scorevarying in accordance with k. For example, it is also preferable thatthe score x_(i, k) is increased in the order of timing in whichfeedbacks were given. As the weight a_(k), for example, a large weightvalue (1.0) is set to the purchase, an intermediate weight (0.6) is setto the evaluation and a low weight value (0.3) is set to the access tothe detailed information.

$\begin{matrix}{{{UP}\left( {u,i} \right)} = {\sum\limits_{k}\; {a_{k}x_{i,k}}}} & (5)\end{matrix}$

When the taste information is generated by the taste analyzing unit 116as described above, the server device 11 inputs the taste informationgenerated by the taste analyzing unit 116 to the item recommendationunit 115. The server device 11 also extracts an item group relating tothe item which has received the feedback (hereinafter referred to as arelated item group) by the function of the item recommendation unit 115(S132). At this time, the server device 11 refers to the J-matrix storedin the relevance table storage unit 123 to extracts the item grouphaving higher correlation values (values of the J-matrix) with respectto the item receiving the feedback by the function of the itemrecommendation unit 115.

The server device 11 which has extracted the related item group selectsa given number of items corresponding to the user's taste (having higherscores) from the related item group by using taste information inputtedby the taste analyzing unit 116 by the function of the itemrecommendation unit 115. Then, the server device 11 generates arecommendation list including items selected from the related item group(hereinafter, referred to as related items) by the function of the itemrecommendation unit 115 (S133). Subsequently, the server device 11recommends related items included in the recommendation list to the userwho has given the feedback by the function of the item recommendationunit 115 (S134).

The above is the explanation of the recommendation method using thetaste information.

(1-3-5: About Efficiency Method)

Next, devices for increasing calculation efficiency at the time ofcalculating the J-matrix and use efficiency of a memory will beexplained with reference to FIG. 17 and FIG. 18. FIG. 17 and FIG. 18 areexplanatory charts for explaining devices for increasing the calculationefficiency at the time of calculating the J-matrix and the useefficiency of the memory. As described above, the calculation of theJ-matrix corresponds to calculation of the above expressions (1), (2).When referring to the above expressions (1), (2), it is found that twokinds of sums S₁, S₂ concerning elements of the P-matrix (the followingexpressions (6), (7)) are included in the calculation.

$\begin{matrix}{{S_{1}(i)} = {\sum\limits_{v}\; {P\left( {i,v} \right)}}} & (6) \\{{S_{2}\left( {i,j} \right)} = {\sum\limits_{v}\; {{P\left( {i,v} \right)} \cdot {P\left( {j,v} \right)}}}} & (7)\end{matrix}$

The above S₁ (i) indicates the frequency in which all users gavefeedbacks to the item i. On the other hand, the above S₂ (i, j)indicates the frequency in which the same user gave the feedback to bothof the items i, j. For example, when the type of the feedback is thepurchase, the number of purchases in each item corresponds to the aboveexpression (6) as shown in FIG. 17. Additionally, the number ofpurchases (the number of co-occurrences) in each combination of itemscorresponds to the above expression (7) as shown in FIG. 18. Therefore,the sum calculation represented by the above expressions (6), (7) can beomitted by storing tables of the number of purchases and the number ofco-occurrences as shown in FIG. 17 and FIG. 18. As a result, thecalculation of the J-matrix expressed in the above expressions (1), (2)can be made more effective.

The above is the explanation of the method of allowing the calculationat the time of calculating the J-matrix to be more effective.

1-4: Modification Examples

Next, modification examples of the embodiment will be explained.

1-4-1 Approximate Update Method of J-Matrix (First Modification Example)

When applying the recommendation method of items using P-matrix,D-matrix and J-matrix explained above, the recommendation of relateditems reflecting the feedback can be executed in real time at the timeof receiving the feedback by the user. However, there is a demand forreducing a calculation load of J-matrix to reduce time necessary forrecommending related items as short as possible. Accordingly, theinventors of the case devised a method of reducing the calculation loadnecessary for recommending related items to reduce time necessary forrecommending related items.

Hereinafter, an approximate update method of J-matrix will be explainedwith reference to FIG. 19 to FIG. 21. FIG. 19 to FIG. 21 are explanatorycharts for explaining the approximate update method of J-matrix.

First, the processing flow relating to the approximate update method ofJ-matrix will be explained with reference to FIG. 19. As shown in FIG.19, first, the server device 11 calculates the J-matrix based onfeedback information at a time (t+1) (S141). The calculation method ofthe J-matrix in Step S141 is the same as the method explained above.Next, the server device 11 compares the J-matrix at a previous time twith the J-matrix at the time (t+1) to calculate an update value δ(S142).

The update value σ is a parameter for approximately calculating theJ-matrix at a time (t+2). Here, supplementary explanation of thecalculation method of the update value δ will be made.

As shown in FIG. 20, the server device 11 refers to the number offeedbacks (the case of “purchase” is cited as an example) given torespective items (the number of purchases) from the time t to the time(t+1). In the example of FIG. 20, the number of purchases is the largestin an item 4 (Item 4), the server device 11 selects the item 4. Theserver device 11 also stores the number of purchases of the selecteditem 4 as n=64.

Subsequently, the server device 11 refers to the J-matrix at the time t.At this time, the server device 11 refers to elements of the J-matrix J(1, 4), J (2, 4), J (3, 4) relating to the item 4 the number ofpurchases is the largest. The server device 11 further refers to theJ-matrix at the time (t+1). At this time, the server device 11 refers toelements of the J-matrix J (1, 4), J (2, 4), J (3, 4) relating to theitem 4 the number of purchases is the largest. Then, the server device11 compares the elements of the J-matrix J (1, 4), J (2, 4), J (3, 4) atthe time t with the elements of the J-matrix J (1, 4), J (2, 4), J (3,4) at the time (t+1).

The server device 11 selects the maximum value ΔJ (2, 4)=0.16 fromdifference values ΔJ (1, 4)=0.12, ΔJ (2, 4)=0.16 and ΔJ (3, 4)=0.06 ofthe elements of the J-matrix J (1, 4), J (2, 4), J (3, 4). The maximumvalue is expressed as d. Furthermore, the server device 11 calculatesthe update value δ=d/n=0.16/62=0.00258 by using the maximum value d=ΔJ(2, 4). The explanation has been made with the specific example (thecase where the feedback type is “purchase”), however, the update value δcan be calculated in the same manner also in a case where the feedbacktype or the value of the J-matrix differs.

FIG. 19 is referred to again. After calculating the update value δ inStep S142, the server device 11 determines whether there is a feedbackor not at a next time (t+2) (S143). When there is the feedback, theserver device 11 allows the process to proceed to Step S144. On theother hand, when there is no feedback, the server device 11 returns theprocess to Step S143 and waits for the feedback.

When the process proceeds to Step S144, the server device 11 updates theP-matrix based on the feedback at the time (t+2) (S144). Subsequently,the server device 11 calculates the J-matrix at the time (t+2) by usingthe update value δ calculated in Step S142 (S145). However, the J-matrixcalculated here is not calculated by the above expressions (1), (2)based on the P-matrix updated in Step S144, therefore, the J-matrixsubstantially corresponds to the J-matrix at the time (t+2) predictedfrom the J-matrixes at the time t and the time (t+1).

Here, supplementary explanation concerning the calculation method of theJ-matrix at the time (t+2) using the update value σ will be made withreference to FIG. 21. A case where the user who gave the feedback (thecase of “purchase” is cited as an example in this case) to items 2, 3 inthe past has given the feedback to the item 1 at the time (t+2) will beconsidered.

As shown in FIG. 21, the server device 11 refers to the J-matrix at thetime (t+1) first. At this time, the server device 11 pays attention toelements (hereinafter referred to as focused elements) concerningelements concerning combinations between the item 1 purchased at thetime (t+2) and items 2, 3 purchased before. Next, the server device 11adds the update value δ calculated in Step S142 to values of focusedelements at the time (t+1) to calculates the J-matrix at the time (t+2).

As described above, the server device 11 executes update processing ofthe J-matrix using the update value δ. The server device 11 executescalculation of the J-matrix based on the above expressions (1), (2) bythe method described above at a given timing. As described above,high-speed update processing is realized by updating the J-matrix byusing the update value δ. Additionally, accumulation of error due toapproximation can be suppressed by executing calculation processing ofthe J-matrix from the P-matrix at the given timing.

The approximate update method of the J-matrix will be explained as theabove.

1-4-2: Update Method of J-Matrix Based on Bias Parameters (SecondModification Example)

Next, an update method of the J-matrix based on bias parameters will beexplained with reference to FIG. 22. FIG. 22 is an explanatory chart forexplaining the update method of the J-matrix based on the biasparameters. The bias parameters in this case indicate parameters forperforming weighting to elements of the J-matrix so as to correspond tothe user's taste.

As shown in FIG. 22, the bias parameters are previously determined inaccordance with item types. In the example of FIG. 22, the biasparameter is set to 1·2^(n-1) when the item is game software, the biasparameter is set to 1·1^(n-1) when the item is video software and thebias parameter is set to 1·4^(n-1) when the item is comics. n indicatesthe order of purchasing. For example, when the user purchased the items2, 3 (game software) sequentially, the server device 11 calculates biasparameters concerning items 2, 3. In this case, a bias parameter b1 ofthe item 2 will be 1.2⁰=1.0, and a bias parameter b2 of the item 3 willbe 1.2¹=1.2.

After calculating the bias parameters b1, b2, the server device 11refers to the J-matrix and pays attention to elements of the J-matrix J(1, 2), J (1, 3) and J (2, 3) relating to the items 2, 3. Then, theserver device 11 multiplies the element of the J-matrix J (1, 2) by thebias parameter b1 and multiplies the elements of the J-matrix J (1, 3),J (2, 3) by the bias parameter b2. As described above, the server device11 updated the J-matrix by the bias parameters generates therecommendation list based on the updated J-matrix and recommends relateditems to the user based on the generated recommendation list.

The above is the explanation of the update method of the J-matrix basedon the bias parameters.

1-5: Hardware Configuration

Functions of respective components included in the above server device11 and the user terminals 13 can be realized by using a hardwareconfiguration of an information processing apparatus, for example, shownin FIG. 23. That is, functions of respective components are realized bycontrolling the hardware shown in FIG. 23 by using a computer program.The form of the hardware is optional, including, for example, a personalcomputer, information terminals such as a cellular phone, a PHS and aPDA, a game machine and various information home appliances. The PHS isan abbreviation of “Personal Handy-phone System”. The PDA is anabbreviation of “Personal Digital Assistant”.

As shown in FIG. 23, the hardware chiefly includes a CPU 902, a ROM 904,a RAM 906, a host bus 908 and a bridge 910. The hardware furtherincludes an external bus 912, an interface 914, an input unit 916, anoutput unit 918, a storage unit 920, a drive 922, a connection port 924and a communication unit 926. The CPU is an abbreviation of “CentralProcessing Unit”. The ROM is an abbreviation of “Read Only Memory”. TheRAM is an abbreviation of “Random Access Memory”.

The CPU 902 functions as a calculation processing device or a controldevice, controlling the whole operation of respective components or partthereof based on various types of programs stored in the ROM 904, theRAM 906, the storage unit 920 or a removal recording medium 928. The ROM904 is a means for storing programs read by the CPU 902, data used forcalculation and so on. For example, programs to be read by the CPU 902,various parameters varying appropriately at the time of executing theprograms and so on are stored in the RAM 906 temporarily or permanently.

These components are connected to one another, for example, through thehost bus 908 capable of transmitting data at high speed. The host bus908 is connected to, for example, the external bus 912 transmitting dataat relatively low speed through the bridge 910. As the input unit 916,for example, a mouse, a keyboard, a touch panel, buttons, switches,levers and so on are used. Additionally, a remote controller capable oftransmitting control signals by using infrared rays or other electricwaves is occasionally used as the input unit 916.

As the output unit 918, devices capable of notifying acquiredinformation to users visually or auditorily can be used, which are, forexample, display devices such as a CRT, an LCD, a PDP and an ELD, audiooutput devices such as a speaker, headphones and a printer, a cellularphone, a facsimile and so on. The CRT is an abbreviation of “Cathode RayTube”. The LCD is an abbreviation of “Liquid Crystal Display”. The PDPis an abbreviation of “Plasma Display Panel”. The ELD is an abbreviationof “Electro-Luminescence Display”.

The storage unit 920 is a device for storing various data. As thestorage unit 920, for example, a magnetic storage device such as a harddisk drive (HDD), a semiconductor storage device, an optical storagedevice, a magneto-optical storage device and the like are used. The HDDis an abbreviation of “Hard Disk Drive”.

The drive 922 is a device reading information recorded in the removablerecording medium 928 such as a magnetic disk, an optical disk, amagneto-optical disk, a semiconductor memory or the like and writinginformation in the removable recording medium 928. The As the removablerecording medium 928, for example, DVD media, Blue-ray media, HD DVDmedia, various semiconductor storage media and so on can be used.Naturally, the removable recording medium 928 can apply, for example, anIC card on which a non-contact IC chip is mounted, electronic devicesand so on. The IC is an abbreviation of “Integrated Circuit”.

The connection port 924 is a port for connecting an external connectiondevice 930, which is, for example, an USB port, an IEEE1394 port, aSCSI, an RS-232C port or an optical audio terminal. As the externalconnection device 930, a printer, a portable music player, a digitalcamera, a digital video camera, an IC recorder and so on can be cited.The USB is an abbreviation of “Universal Serial Bus”. The SCSI is anabbreviation of “Small Computer System Interface”.

As the communication unit 926, communication devices for connecting to anetwork 932 can be used, which are, for example, communication cards fora wired or wireless LAN, Bluetooth (Registered Trademark) and WUSB, arouter for optical communication, a router for ADSL, modems for variouscommunications. The network 932 connected to the communication unit 926includes networks connected by wired or wireless communication, whichis, for example, a internet, a home LAN, an infrared communication, avisible light communication, broadcasting, satellite communication orthe like. The LAN is an abbreviation of “Local Area Network”. The WUSBis an abbreviation of “Wireless USB”. Additionally, the ADSL is anabbreviation of “Asymmetric Digital Subscriber Line”.

2: Brief

Lastly, the technical contents according to the embodiment of thepresent disclosure are briefly summarized. The technical contentsdescribed here can be applied to various information processingapparatuses such as a PC, a cellular phone, a portable game machine, aportable information terminal, information home appliances and a carnavigation system.

The functional configuration of the information processing apparatus canbe expressed as follows. The information processing apparatus includes afeedback receiving unit, a feedback history storage unit, a relevancecalculation unit and a recommendation unit. The feedback receiving unitis a means for receiving feedbacks with respect to items by a user. Asthe feedbacks, purchase of items, access to information concerningitems, evaluation to items and so on.

The feedback history storage unit is a means for storing information offeedbacks received at present or in the past by the feedback receivingunit in units of combinations of users and items. The feedbackinformation includes, for example, purchase history of items, accesshistory of information concerning items, evaluation information withrespect to items and so on.

The relevance calculation unit is a means for calculating relevancebetween items base on first information indicating the degree in whichthe same user gives feedbacks to both items and second informationindicating the degree in which many users give feedbacks by usingfeedback information stored in the feedback history storage unit whenreceiving the feedback by the feedback receiving unit. For example, whenfeedback information indicates purchase history of the user, the firstinformation will be information indicating the number of purchases ofitems by the same user. The second information will be informationindicating the number of items purchased by plural users.

The relevance between items will be the one reflecting the user's tasteby considering the above first information. On the other hand, therelevance between items will be the one reflecting the relevance amongusers through items by considering the second information. That is, therelevance calculated by the relevance calculation unit indicates therelevance between items reflecting the user's taste and the relevanceamong users. The recommendation unit immediately recommends items havinghigher relevance with respect to the item to the user who has given thefeedback to the item by the feedback receiving unit.

As the result, it is possible to recommend the item to the user selectedin consideration of both the user's taste and the relevance among usersthrough the item. Additionally, after the user gives the feedback, thefeedback is reflected on the recommendation result immediately,therefore, the item fitted to the user's taste at the time of thefeedback is recommended to the user.

(Supplement)

The recommendation system 10 is an example of the item recommendationsystem. The feedback information update unit 112 and the history tablestorage unit 121 are examples of the feedback history storage unit. Theintermediate-value table generation unit 113 and the relevancecalculation unit 114 are examples of the relevance calculation unit. Theitem recommendation unit 115 is an example of the recommendation unit.The relevance calculation unit 114 is an examples of a variationdetection unit and a relevance prediction unit. The taste analyzing unit116 is an example of a taste information generation unit.

The preferred embodiment of the present disclosure has been explainedwith reference to the attached drawings, and it goes without saying thatthe present disclosure is not limited to the above example. It should beunderstood that those skilled in the art can make various alternationsand modifications within the scope of the appended claims and that thesenaturally belong to the technical scope of the present disclosure.

For example, two types of modification examples are shown in addition tothe basic configuration of the embodiment. It is possible to combine thebasic configuration with modification examples and the manner ofcombination is not limited. Additionally, the types of feedbacks, typesof bias parameters are specifically shown in the above explanation,however, the technical scope of the embodiment is not limited to thesespecific examples.

It should be understood by those skilled in the art that variousmodifications, combinations, sub-combinations and alterations may occurdepending on design requirements and other factors insofar as they arewithin the scope of the appended claims or the equivalents thereof.

1. (canceled)
 2. A system comprising: a communication interfaceconfigured to connect to a network; and circuitry configured to: provideinformation of a plurality of items to a plurality of users through thenetwork; receive feedback including first feedback for at least one ofthe plurality of items from one of the plurality of users and secondfeedback for at least one of the plurality of items from the pluralityof users through the network, wherein the feedbacks are received atpresent or in the past; store the received feedbacks in a storage unit;and recommend one or more of the plurality of items to the one of theplurality of users based on the first feedback and the second feedbackstored in the storage unit.
 3. The system of claim 2, wherein the firstfeedback includes access information for the at least one of theplurality of items by the one of the plurality of users.
 4. The systemof claim 3, wherein the second feedback includes access information forthe at least one of the plurality of items by the plurality of users. 5.The system of claim 2, wherein the circuitry is configured to assigneach of the plurality of items a score based upon at least one of thefirst feedback and the second feedback.
 6. The system of claim 5,wherein the circuitry is configured to recommend the one or more of theplurality of items to the one of the plurality of users based upon thescores.
 7. The system of claim 6, wherein the circuitry is configured torecommend the one or more of the plurality of items to the one of theplurality of users having a higher score that other items of theplurality of items.
 8. The system of claim 4, wherein the circuitry isconfigured to assign each of the plurality of items a score based uponat least one of the first feedback and the second feedback.
 9. Thesystem of claim 8, wherein the circuitry is configured to recommend theone or more of the plurality of items to the one of the plurality ofusers based upon the scores.
 10. The system of claim 9, wherein thecircuitry is configured to recommend the one or more of the plurality ofitems to the one of the plurality of users having a higher score thatother items of the plurality of items.
 11. The system of claim 2,wherein the circuitry is configured to store an item ID of the at leastone of the plurality of times in association with a user ID of the oneof the plurality of users as the first feedback.
 12. A methodcomprising: providing, via circuitry, information of a plurality ofitems to a plurality of users through a network via a communicationinterface; receiving, via the circuitry, feedback including firstfeedback for at least one of the plurality of items from one of theplurality of users and second feedback for at least one of the pluralityof items from the plurality of users through the network via thecommunication interface, wherein the feedbacks are received at presentor in the past; storing, via the circuitry, the received feedbacks in astorage unit; and recommending, via the circuitry, one or more of theplurality of items to the one of the plurality of users based on thefirst feedback and the second feedback stored in the storage unit. 13.The method of claim 12, wherein the first feedback includes accessinformation for the at least one of the plurality of items by the one ofthe plurality of users.
 14. The method of claim 13, wherein the secondfeedback includes access information for the at least one of theplurality of items by the plurality of users.
 15. The method of claim12, further comprising assigning, via the circuitry, each of theplurality of items a score based upon at least one of the first feedbackand the second feedback.
 16. The method of claim 15, further comprisingrecommending, via the circuitry, the one or more of the plurality ofitems to the one of the plurality of users based upon the scores. 17.The method of claim 16, further comprising recommending, via thecircuitry, the one or more of the plurality of items to the one of theplurality of users having a higher score that other items of theplurality of items.
 18. The method of claim 14, further comprisingassigning, via the circuitry, each of the plurality of items a scorebased upon at least one of the first feedback and the second feedback.19. The method of claim 18, further comprising recommending, via thecircuitry, the one or more of the plurality of items to the one of theplurality of users based upon the scores.
 20. The method of claim 19,further comprising recommending, via the circuitry, the one or more ofthe plurality of items to the one of the plurality of users having ahigher score that other items of the plurality of items.
 21. The methodof claim 12, further comprising storing, via the circuitry, an item IDof the at least one of the plurality of times in association with a userID of the one of the plurality of users as the first feedback.